"""
@project:python起步.py
@author:zhujiahui
@IDE:PyCharm
@time:2021-06-25-20:25
@Introduction:
"""
# #111，小练习
# company = {"BOSS":"唐僧","CTO":"悟空","CFO":"八戒","板砖":"沙僧","苦力":"白龙马"}
# copy_mas = input("请输入你要打印的职位：")
# if copy_mas in company:
#     print(company[copy_mas])
# else:
#     print("请输入正确的信息！如：BOSS,CTO,CFO,搬砖，苦力")
# for k, v in company.items(): #输出key 和 value
#     print(k,"是", v)
# yes_no = input("请输入你要判断的信息：")
# if yes_no in company.values():
#     print(yes_no,"在company字典中！")
# else:
#     print("输入错误，你输入的信息不在字典中！")


# #222
# print("欢迎使用用户检测系统！")
# user_luck = {'root':'123456','admin':'admin'}
# for j in range(3):
#     op_az = input("输入N：使用该系统，输入quit:退出该系统！请输入选项：")
#     if op_az.upper() == 'N':
#         user_add = input("请输入你的用户名：")
#         if user_add in user_luck:
#             for i in range(3):
#                 user_pwd = input("请输入您的密码：")
#                 if user_pwd == user_luck[user_add]:
#                     print("您的用户名和密码正确！")
#                     break
#                 else:
#                     print("您的密码错误！")
#             break
#         else:
#             print(f"您已尝试,",j+1,"次输入错误!")
#     elif op_az    == "quit":
#         print("您已成功退出该系统！")
#         break
#     else:
#         print("请输入正确的选项：N\qiute")


#333
'''
互送礼活动
圣诞节到了，公司开展一个互送礼物活动。每个员工系统会随机抽取一位送礼物的对
象，送礼对象不能重复。最终每个人都能送出和收到一份礼物。
·定义好公司员工名单
·循环系统会随机抽取一位收礼物的人
·打印最终的送礼和收礼的关系
'''
import random
man_list = ["zjh","lxf","wjx","cjw","xyy","xxy"]
receive_man = []
get_man = []
while len(man_list) != 0:
    num1 = random.randint(0,len(man_list)-1)
    name1 = man_list[num1]
    man_list.remove(name1)
    receive_man.append(num1)
    num2 = random.randint(0,len(man_list)-1)
    name2 = man_list[num2]
    man_list.remove(name2)
    receive_man.append(name1)
    get_man.append(num2)
    print(f'{name1}送给{name2}')

###字典的实现原理：
#key必须是可hash对象（不可变数据类型），value可以是任意值
#1、怎么查找的：
#2、为什么key要是可hash对象
#3、为什么key天生去重
# 字典本质上是一个散列表(总有空白元素的数组, python至少保证1/3的数组是空的),
# 字典中的每个键都占用一个单元, 一个单元分为两部分, 分别是对键的引用和对值的引用,
# 使用hash函数获得键的散列值, 散列值对数组长度取余, 取得的值就是存放位置的索引（字典首先把所有的键hash成数值，然后排序）
# 哈希冲突(数组的索引相同), 使用开放寻址法解决（这也是python中要求字典的key必须可hash的原因）
# 数组中1/3的位置为空, 增加元素可能会导致扩容, 引发新的散列冲突, 导致新的散列表中键的次序发生变化, 这也是字典遍历时不能添加和删除的原因
#字典在内存中开销很大, 实际上是以空间换时间
